#!/bin/bash -u

BASE_DIR=$1
NANTS=$2
LS_VAR=$3
MAX=$4

DATA_FILE=${BASE_DIR}/*_data.arff
TESTE_FILE=${BASE_DIR}/*_test.arff
INPUT_FILE=/tmp/acofs.in

LIB_DIR=src/lib/arff-1.0c/pysource
GEN_BASE_FILE="python ${LIB_DIR}/generateBaseFile.py"
GEN_SUBS_FILE="python ${LIB_DIR}/generateSubsetFile.py"
INFO_GAIN_WEKA=${LIB_DIR}/info-gain-weka.sh
NAIVE_BAYES_WEKA=${LIB_DIR}/naive-bayes-weka.sh

ACOFS=src/acofs

# Gerar vetor de relevancia de características através do ganho de informação
$INFO_GAIN_WEKA $DATA_FILE

# Gerar arquivo de entrada para o acofs, arquivo arff simplificado com info gain
$GEN_BASE_FILE $DATA_FILE

# Executar o acofs para descobrir o subconjunto de caracteristicas mais relevante
RESULT=`$ACOFS $INPUT_FILE $NANTS $LS_VAR $MAX 2> /dev/null`
MASCARA=`cut -d' ' -f1 <<< $RESULT`
echo $RESULT

$GEN_SUBS_FILE $DATA_FILE /tmp/nova_base_data.arff $MASCARA
$GEN_SUBS_FILE $TESTE_FILE /tmp/nova_base_teste.arff $MASCARA

cp $DATA_FILE /tmp/base_data.arff
cp $TESTE_FILE /tmp/base_teste.arff

#bases originais, para comparar solucao
$NAIVE_BAYES_WEKA /tmp/base_data.arff /tmp/base_teste.arff | grep Correctly |
                  tr -s ' ' | cut -d' ' -f5

#bases com features selecionadas
$NAIVE_BAYES_WEKA /tmp/nova_base_data.arff /tmp/nova_base_teste.arff |
                  grep Correctly | tr -s ' ' | cut -d' ' -f5
